<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    function Studance(name,age) {
      this.name = name;
      this.age = age;
      this.address = {
      city : "bj"
    }
      // this.type = "bus";
      // this.fuu = function () {
      //   console.log(this.name);
      // }
    }
    // 直接用字面量对象重写原型对象
    // 注意：此方法原型对象会都是constructor成员，需要手动指向
    Studance.prototype = {
      constructor : Studance,//手动将constructor指向正确的构造函数
      type : "bbs",
      fan :  function () {
        console.log(this.age)
       } 
     }
        // // 添加一个新的属性给原型对象，属性值为对象
        // Studance.prototype.type = "bbs";
        // Studance.prototype.fan =  function () {
        //     console.log(this.age);
        //   }
        var st1 = new Studance("试试",115);
        var st2 = new Studance("自杀",112);

      console.log(st1.__proto__);
      console.log(st1);
      console.log(st1.fan());
      console.log(st1.constructor);



      // 原型对象使用建议
          // 定义构造函数是时候，可以根据功能不同，分别设置
          // 私有成员（一般是非函数成员）放到构造函数中
          // 共享成员（一般是函数成员）放到原型对象中
          // 如果重置了prototype记得重置constructor的指向
  </script>
</body>
</html>